Motion compensated inter-frame coding has been widely adopted in various coding standards, such as MPEG-1/2/4 and H.261/H.263/H.264/AVC. While motion-compensated inter-frame coding can effectively reduce bitrate for compressed video, Intra mode coding is still required to process an initial picture or to periodically insert I-pictures (or Intra-coded picture, I-picture), and the I-pictures are inserted periodically to allow quick access to the compressed video data or to alleviate error propagation. Intra prediction exploits the spatial correlation within a picture or within a picture region. In order to further improve coding efficiency, the High-Efficiency Video Coding (HEVC) standard being developed exploits block-based spatial prediction extensively. In HEVC, multiple Intra prediction modes are used to exploit spatial features.
In AVC, the size of a prediction unit (or block) that is coded using Intra prediction can be 4×4, 8×8 or 16×16. There are nine Intra prediction modes for Luma blocks at 4×4 and 8×8, as shown in Table 1 and Table 2 respectively. There are four Intra prediction modes for Luma 16×16 blocks, as shown in Table 3 and there are four Intra prediction modes for Chroma blocks, as shown in Table 4. The AVC intra prediction directions are shown in FIG. 1.
TABLE 1Intra4x4PredMode[luma4x4BlkIdx]Name of Intra4x4PredMode[luma4x4BlkIdx]0Intra_4x4_Vertical (prediction mode)1Intra_4x4_Horizontal (prediction mode)2Intra_4x4_DC (prediction mode)3Intra_4x4_Diagonal_Down_Left(prediction mode)4Intra_4x4_Diagonal_Down_Right(prediction mode)5Intra_4x4_Vertical_Right (prediction mode)6Intra_4x4_Horizontal_Down (prediction mode)7Intra_4x4_Vertical_Left (prediction mode)8Intra_4x4_Horizontal_Up (prediction mode)
TABLE 2Intra8x8PredMode[luma8x8BlkIdx]Name of Intra8x8PredMode[luma8x8BlkIdx]0Intra_8x8_Vertical (prediction mode)1Intra_8x8_Horizontal (prediction mode)2Intra_8x8_DC (prediction mode)3Intra_8x8_Diagonal_Down_Left(prediction mode)4Intra_8x8_Diagonal_Down_Right(prediction mode)5Intra_8x8_Vertical_Right (prediction mode)6Intra_8x8_Horizontal_Down (prediction mode)7Intra_8x8_Vertical_Left (prediction mode)8Intra_8x8_Horizontal_Up (prediction mode)
TABLE 3Intra16x16PredModeName of Intra16x16PredMode0Intra_16x16_Vertical (prediction mode)1Intra_16x16_Horizontal (prediction mode)2Intra_16x16_DC (prediction mode)3Intra_16x16_Plane (prediction mode)
TABLE 4intra_chroma_pred_modeName of Intra Chroma Prediction Mode0Intra_Chroma_DC (prediction mode)1Intra_Chroma_Horizontal(prediction mode)2Intra_Chroma_Vertical (prediction mode)3Intra_Chroma_Plane (prediction mode)
In HEVC, each picture is divided into a set of square coding units (CUs). Each coding unit may be further divided into multiple prediction units (PUs). In the HEVC Committee Draft (CD) and Test Model Version 6.0 (HM-6.0), a 2N×2N CU may include PUs with partition sizes 2N×2N and N×N for an Intra coded frame or slice as shown in FIG. 2A. A 2N×2N CU may include PUs with partition sizes 2N×2N, N×2N, 2N×N and N×N for an Inter coded frame or slice as shown in FIG. 2B. Note that the N×N prediction type may only exist in smallest coding units (SCU) for both Intra and Inter cases.
In HM-6.0, the prediction and partition modes and the binarization are defined in Table 5, where PredMode refers to the prediction mode (Intra or Inter), part_mode refers to the partition mode, cLog2CUSize is associated with the current CU size, Log2MinCUSize is associated with the minimum CU size, and inter_4×4_enabled_flag refers to a flag for indicating whether Inter 4×4 mode is enabled.
TABLE 5Bin stringcLog2CUSize == Log2MinCUSizecLog2CUSize ==cLog2CUSize > 3Value ofcLog2CUSize >3 && !inter_4x4—| | inter_4x4—PredModepart_modePartModeLog2MinCUSizeenabled_flagenabled_flagMODE_INTRA0PART_2Nx2N—111PART_NxN—00MODE_INTER0PART_2Nx2N1111PART_2NxN01101012PART_Nx2N001000013PART_NxN——0004PART_2NxnU0100——5PART_2NxnD0101——6PART_nLx2N0000——7PART_nRx2N0001——
In HM-6.0 common test conditions, the Luma CU size can be 64×64, 32×32, 16×16 and 8×8. The smallest CU can be further split into four prediction units (PUs) such that if, for example, the smallest CU size is 8×8, the PU can be split into four 4×4 square PUs. Therefore, the Luma Intra prediction unit size can be 64×64, 32×32, 16×16, 8×8 and 4×4. In HM-6.0, 35 Intra prediction modes (as shown in FIG. 3A) are allowed for all Luma PU sizes and 6 modes are allowed for Intra Chroma predictions. It is desired to improve the coding efficiency of Intra prediction by including non-square prediction modes and exploring associated non-square transforms.